Sponge functions are a class of cryptographic algorithms. They have finite internal states that take input bit streams of various lengths (e.g., any length) and produce output bit streams of various lengths (e.g., any desired length). Sponge functions may be used to model or implement cryptographic primitives, such as cryptographic hashes, message authentication codes, stream ciphers, block ciphers, pseudo-random number generators, and authenticated encryption.
Sponge function hardware calculators often apply a particular standard, such as the Secure Hash Algorithm (SHA), which results in specific bus widths that are tailored to the particular SHA, and thus usually cannot be scaled or upgraded to implement other algorithms. Thus, conventional sponge function hardware calculators must be replaced when a security standard changes or a customer need necessitates the use of a different algorithm.